Static insertion of safe and effective memory reuse commands into ML-like programs
نویسندگان
چکیده
We present a static analysis that estimates reusable memory cells and a source-level transformation that adds explicit memory-reuse commands into the program text. For benchmark ML programs, our analysis and transformation system achieves the memory reuse ratio from 5.2% to 91.3% and reduces the memory peak from 0.0% to 71.9%. The small-ratio cases are for programs that have a number of data structures that are shared. For other cases, our experimental results are encouraging in terms of accuracy and cost. Major features of our analysis and transformation are: (1) polyvariant analysis of functions by parameterization for the argument heap cells; (2) use of multiset formulas in expressing the sharings and partitionings of heap cells; (3) deallocations conditioned by dynamic flags that are passed as extra arguments to functions; (4) individual heap cell as the granularity of explicit memory-free. Our analysis and transformation system is fully automatic.
منابع مشابه
Experiments on the Effectiveness of an Automatic Insertion of Safe Memory Reuses into ML-like Programs
We present extensive experimental results on our static analysis and source-level transformation [12, 11] that adds explicit memory-reuse commands into ML program text. Our analysis and transformation cost is negligible (1,582 to 29,000 lines per seconds) enough to be used in daily programming. The payoff is the reduction of memory peaks and the total garbage collection time. The transformed pr...
متن کاملInserting Safe Memory Reuse Commands into ML-Like Programs
We present a static analysis that estimates reusable memory cells and a source-level transformation that adds explicit memory-reuse commands into the program text. For benchmark ML programs, our analysis and transformation achieves the memory reuse ratio from 5.2% to 91.3%. The small-ratio cases are for programs that have too prevalent sharings among memory cells. For other cases, our experimen...
متن کاملTechniques to Improve Dynamic Cache Management with Static Data Classification
Cache hierarchies are increasingly non-uniform and difficult to manage. Several techniques, such as scratchpads or reuse hints, use static information about how programs access data to manage the memory hierarchy. Static techniques are effective on regular programs, but because they set fixed policies, they are vulnerable to changes in program behavior or available cache space. Instead, most sy...
متن کاملComparison of failure rates of CU t 380 A and CU safe 300 IUDs four years after insertion
Changavi F1, janani F1, Asti P1, Akbari S2 1. Instructor, Department of midwifery, Faculty of nursing and midwifery, Lorestan University of Medical Sciences 2. Instructor, Department of gynecology, Faculty of medicine, Lorestan University of Medical Sciences Abstract Background: IUD is a useful and effective tool for family planning. Different kinds of this equipment are available at ...
متن کاملAnalyzing Sorting Algorithms in Resource Aware ML
Software development sometimes requires to statically predict the quantity of resources—such as memory and time—that is needed to execute a program. The difficulties of manual resource analysis led to extensive research on automatic methods for quantitative resource analysis. Recently we developed an automatic amortized analysis to compute polynomial resource bounds for first-order functional p...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Sci. Comput. Program.
دوره 58 شماره
صفحات -
تاریخ انتشار 2005